SAT 2.3 introduces CodeWarrior support (not PowerMac just yet, but that's getting close now), and introduces plug-in blitters.
CodeWarrior:
The main differences between using SAT with CodeWarrior compared to Think are:
• In Pascal, the Toolbox doesn't auto-init as in Think Pascal.
• Also in Pascal, MWP won't auto-include the basic Toolbox as in TP.
• Both MWP and MWC use the same library.
• QuickDraw globals must be prefixed "qd.".
Not much, right?
Plug-in blitters:
These were added for two reasons: Porting my old blitters to CodeWarrior was almost undoable, and the new system allows you to plug in your own blitters. Blitters are stored in resources of types 'RBlt' and 'MBlt', with ID's corresponding to the screen depth it is designed for (where 0 means a B/W non-color-QD blitter).
This means that:
• If you have a blitter that you think is faster than mine, you can plug it in and try it. (Note: That is of course only possible after I publish a spec for the routines, which I will do when I feel sure that it won't change again soon.) For example, it is now possible to use compiled sprites in SAT.
• If I or anyone else improve a blitter, the new one can be plugged into an existing SAT program without recompiling.
• You can add yor own blitters for 16 and 32 bits (and even 2 bits, as if anyone would ever waste time on a 2-bit blitter.)
• If your program doesn't use blitters anyway (i.e. it uses only QuickDraw) you can save a few kilobytes by excluding them.
• Drawback: SAT now, again, includes some resources to include in the programs.
• SAT is now, again, only ONE library and now two.
Extra feature:
Sprites now have a "clip" field. It is useful when you want to use a clipping region for some sprites. Note that when clip is not nil, the sprite is drawn with QuickDraw, not with blitters.
PICT utilities:
Some SAT programmers have had trouble with the backdrop PICTs.
First, SAT used to place the PICT with the origo the PICT has, which usually depends on its position in the drawing program. This was changed so that SAT always centers the PICT.
Second, many SAT programmers use far larger PICT resources than I use in the demos (which is reasonable - the final applications should be as pretty as possible while demos MUST be small) which often gave out-of-memory problems. SAT now draws its PICTs with the following memory-conservative procedures, which are also available for the target application: SATGetandDrawPICTRes (draws a PICT in its own rectangle), SATGetandDrawPICTResInRect (draws a PICT fit in the given rectangle), SATGetandCenterPICTResInRect (draws a PICT centered on the given rectangle).
BUG FIXES:
• Fixed a bug that made SATBackChanged (including calling it implicitly through SATPlotFace etc) incompatible with scrolling as in Zkrolly.
The programming interface remains the same as in 2.2. See SAT 2.2 notes if it is new for you.
COMING SOON:
What will happen next? PowerMac version, I guess. Some more features for certain kinds of animation. A weakness with SAT as it is now is that it is explicitly made for games where everything that are sprites move (or are invisible). This will change soon, but don't worry if you don't need it. Faster blitters? Maybe.
NEWS FLASH: SAT now DOES handle non-changing sprites! Try SATRun2 instead of SATRun! The demo "Bricks" demonstrate the difference. Note: SATRun2(true) will not work correctly with the current blitters for b/w and 4-bit graphics.